/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.46.0(21007360cad28648bdf46282a2592cb47c3a7a6f)
 * Released under the MIT license
 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
 *-----------------------------------------------------------------------------*/
define('vs/basic-languages/msdax/msdax', ['require', 'require'], require => {
  'use strict'
  var moduleExports = (() => {
    var e = Object.defineProperty
    var I = Object.getOwnPropertyDescriptor
    var O = Object.getOwnPropertyNames
    var S = Object.prototype.hasOwnProperty
    var n = (T, E) => {
        for (var N in E) e(T, N, { get: E[N], enumerable: !0 })
      },
      t = (T, E, N, R) => {
        if ((E && typeof E == 'object') || typeof E == 'function')
          for (let A of O(E))
            !S.call(T, A) && A !== N && e(T, A, { get: () => E[A], enumerable: !(R = I(E, A)) || R.enumerable })
        return T
      }
    var L = T => t(e({}, '__esModule', { value: !0 }), T)
    var D = {}
    n(D, { conf: () => C, language: () => o })
    var C = {
        comments: { lineComment: '//', blockComment: ['/*', '*/'] },
        brackets: [
          ['[', ']'],
          ['(', ')'],
          ['{', '}'],
        ],
        autoClosingPairs: [
          { open: '"', close: '"', notIn: ['string', 'comment'] },
          { open: "'", close: "'", notIn: ['string', 'comment'] },
          { open: '[', close: ']', notIn: ['string', 'comment'] },
          { open: '(', close: ')', notIn: ['string', 'comment'] },
          { open: '{', close: '}', notIn: ['string', 'comment'] },
        ],
      },
      o = {
        defaultToken: '',
        tokenPostfix: '.msdax',
        ignoreCase: !0,
        brackets: [
          { open: '[', close: ']', token: 'delimiter.square' },
          { open: '{', close: '}', token: 'delimiter.brackets' },
          { open: '(', close: ')', token: 'delimiter.parenthesis' },
        ],
        keywords: [
          'VAR',
          'RETURN',
          'NOT',
          'EVALUATE',
          'DATATABLE',
          'ORDER',
          'BY',
          'START',
          'AT',
          'DEFINE',
          'MEASURE',
          'ASC',
          'DESC',
          'IN',
          'BOOLEAN',
          'DOUBLE',
          'INTEGER',
          'DATETIME',
          'CURRENCY',
          'STRING',
        ],
        functions: [
          'CLOSINGBALANCEMONTH',
          'CLOSINGBALANCEQUARTER',
          'CLOSINGBALANCEYEAR',
          'DATEADD',
          'DATESBETWEEN',
          'DATESINPERIOD',
          'DATESMTD',
          'DATESQTD',
          'DATESYTD',
          'ENDOFMONTH',
          'ENDOFQUARTER',
          'ENDOFYEAR',
          'FIRSTDATE',
          'FIRSTNONBLANK',
          'LASTDATE',
          'LASTNONBLANK',
          'NEXTDAY',
          'NEXTMONTH',
          'NEXTQUARTER',
          'NEXTYEAR',
          'OPENINGBALANCEMONTH',
          'OPENINGBALANCEQUARTER',
          'OPENINGBALANCEYEAR',
          'PARALLELPERIOD',
          'PREVIOUSDAY',
          'PREVIOUSMONTH',
          'PREVIOUSQUARTER',
          'PREVIOUSYEAR',
          'SAMEPERIODLASTYEAR',
          'STARTOFMONTH',
          'STARTOFQUARTER',
          'STARTOFYEAR',
          'TOTALMTD',
          'TOTALQTD',
          'TOTALYTD',
          'ADDCOLUMNS',
          'ADDMISSINGITEMS',
          'ALL',
          'ALLEXCEPT',
          'ALLNOBLANKROW',
          'ALLSELECTED',
          'CALCULATE',
          'CALCULATETABLE',
          'CALENDAR',
          'CALENDARAUTO',
          'CROSSFILTER',
          'CROSSJOIN',
          'CURRENTGROUP',
          'DATATABLE',
          'DETAILROWS',
          'DISTINCT',
          'EARLIER',
          'EARLIEST',
          'EXCEPT',
          'FILTER',
          'FILTERS',
          'GENERATE',
          'GENERATEALL',
          'GROUPBY',
          'IGNORE',
          'INTERSECT',
          'ISONORAFTER',
          'KEEPFILTERS',
          'LOOKUPVALUE',
          'NATURALINNERJOIN',
          'NATURALLEFTOUTERJOIN',
          'RELATED',
          'RELATEDTABLE',
          'ROLLUP',
          'ROLLUPADDISSUBTOTAL',
          'ROLLUPGROUP',
          'ROLLUPISSUBTOTAL',
          'ROW',
          'SAMPLE',
          'SELECTCOLUMNS',
          'SUBSTITUTEWITHINDEX',
          'SUMMARIZE',
          'SUMMARIZECOLUMNS',
          'TOPN',
          'TREATAS',
          'UNION',
          'USERELATIONSHIP',
          'VALUES',
          'SUM',
          'SUMX',
          'PATH',
          'PATHCONTAINS',
          'PATHITEM',
          'PATHITEMREVERSE',
          'PATHLENGTH',
          'AVERAGE',
          'AVERAGEA',
          'AVERAGEX',
          'COUNT',
          'COUNTA',
          'COUNTAX',
          'COUNTBLANK',
          'COUNTROWS',
          'COUNTX',
          'DISTINCTCOUNT',
          'DIVIDE',
          'GEOMEAN',
          'GEOMEANX',
          'MAX',
          'MAXA',
          'MAXX',
          'MEDIAN',
          'MEDIANX',
          'MIN',
          'MINA',
          'MINX',
          'PERCENTILE.EXC',
          'PERCENTILE.INC',
          'PERCENTILEX.EXC',
          'PERCENTILEX.INC',
          'PRODUCT',
          'PRODUCTX',
          'RANK.EQ',
          'RANKX',
          'STDEV.P',
          'STDEV.S',
          'STDEVX.P',
          'STDEVX.S',
          'VAR.P',
          'VAR.S',
          'VARX.P',
          'VARX.S',
          'XIRR',
          'XNPV',
          'DATE',
          'DATEDIFF',
          'DATEVALUE',
          'DAY',
          'EDATE',
          'EOMONTH',
          'HOUR',
          'MINUTE',
          'MONTH',
          'NOW',
          'SECOND',
          'TIME',
          'TIMEVALUE',
          'TODAY',
          'WEEKDAY',
          'WEEKNUM',
          'YEAR',
          'YEARFRAC',
          'CONTAINS',
          'CONTAINSROW',
          'CUSTOMDATA',
          'ERROR',
          'HASONEFILTER',
          'HASONEVALUE',
          'ISBLANK',
          'ISCROSSFILTERED',
          'ISEMPTY',
          'ISERROR',
          'ISEVEN',
          'ISFILTERED',
          'ISLOGICAL',
          'ISNONTEXT',
          'ISNUMBER',
          'ISODD',
          'ISSUBTOTAL',
          'ISTEXT',
          'USERNAME',
          'USERPRINCIPALNAME',
          'AND',
          'FALSE',
          'IF',
          'IFERROR',
          'NOT',
          'OR',
          'SWITCH',
          'TRUE',
          'ABS',
          'ACOS',
          'ACOSH',
          'ACOT',
          'ACOTH',
          'ASIN',
          'ASINH',
          'ATAN',
          'ATANH',
          'BETA.DIST',
          'BETA.INV',
          'CEILING',
          'CHISQ.DIST',
          'CHISQ.DIST.RT',
          'CHISQ.INV',
          'CHISQ.INV.RT',
          'COMBIN',
          'COMBINA',
          'CONFIDENCE.NORM',
          'CONFIDENCE.T',
          'COS',
          'COSH',
          'COT',
          'COTH',
          'CURRENCY',
          'DEGREES',
          'EVEN',
          'EXP',
          'EXPON.DIST',
          'FACT',
          'FLOOR',
          'GCD',
          'INT',
          'ISO.CEILING',
          'LCM',
          'LN',
          'LOG',
          'LOG10',
          'MOD',
          'MROUND',
          'ODD',
          'PERMUT',
          'PI',
          'POISSON.DIST',
          'POWER',
          'QUOTIENT',
          'RADIANS',
          'RAND',
          'RANDBETWEEN',
          'ROUND',
          'ROUNDDOWN',
          'ROUNDUP',
          'SIGN',
          'SIN',
          'SINH',
          'SQRT',
          'SQRTPI',
          'TAN',
          'TANH',
          'TRUNC',
          'BLANK',
          'CONCATENATE',
          'CONCATENATEX',
          'EXACT',
          'FIND',
          'FIXED',
          'FORMAT',
          'LEFT',
          'LEN',
          'LOWER',
          'MID',
          'REPLACE',
          'REPT',
          'RIGHT',
          'SEARCH',
          'SUBSTITUTE',
          'TRIM',
          'UNICHAR',
          'UNICODE',
          'UPPER',
          'VALUE',
        ],
        tokenizer: {
          root: [
            { include: '@comments' },
            { include: '@whitespace' },
            { include: '@numbers' },
            { include: '@strings' },
            { include: '@complexIdentifiers' },
            [/[;,.]/, 'delimiter'],
            [/[({})]/, '@brackets'],
            [
              /[a-z_][a-zA-Z0-9_]*/,
              { cases: { '@keywords': 'keyword', '@functions': 'keyword', '@default': 'identifier' } },
            ],
            [/[<>=!%&+\-*/|~^]/, 'operator'],
          ],
          whitespace: [[/\s+/, 'white']],
          comments: [
            [/\/\/+.*/, 'comment'],
            [/\/\*/, { token: 'comment.quote', next: '@comment' }],
          ],
          comment: [
            [/[^*/]+/, 'comment'],
            [/\*\//, { token: 'comment.quote', next: '@pop' }],
            [/./, 'comment'],
          ],
          numbers: [
            [/0[xX][0-9a-fA-F]*/, 'number'],
            [/[$][+-]*\d*(\.\d*)?/, 'number'],
            [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'],
          ],
          strings: [
            [/N"/, { token: 'string', next: '@string' }],
            [/"/, { token: 'string', next: '@string' }],
          ],
          string: [
            [/[^"]+/, 'string'],
            [/""/, 'string'],
            [/"/, { token: 'string', next: '@pop' }],
          ],
          complexIdentifiers: [
            [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],
            [/'/, { token: 'identifier.quote', next: '@quotedIdentifier' }],
          ],
          bracketedIdentifier: [
            [/[^\]]+/, 'identifier'],
            [/]]/, 'identifier'],
            [/]/, { token: 'identifier.quote', next: '@pop' }],
          ],
          quotedIdentifier: [
            [/[^']+/, 'identifier'],
            [/''/, 'identifier'],
            [/'/, { token: 'identifier.quote', next: '@pop' }],
          ],
        },
      }
    return L(D)
  })()
  return moduleExports
})
